# -*- coding: UTF-8 -*- 
'''
Created on 03/04/2013

@author: rubenbarroso
'''

def mi_funcion(param1, param2):
    print param1
    print param2

mi_funcion("parametro1", "parametro2")

#Ejemplo de funcion con doc string, es la documentacion de la funcion.
#Aclaracion: Esto es lo que imprime el opeardor ? de iPython o la función help

def mi_funcion_con_doc_string(param1, param2):
    """Esta funcion imprime los dos valores pasados
    como parametros"""
    print param1
    print param2

#Ejemplo cambiando el orden de los parametros.
mi_funcion(param2 = 2, param1 = "hola")

#Declaracion de una funcion con un parametro que tiene valores por defecto
def imprimir(texto, veces = 1):
    print veces * texto
imprimir("hola")


#Declaracion de una funcion con numero de parametros variables.
def varios(param1, param2, *otros):
    if len(otros) > 0: 
        print "valor introducido en indice 0 de la tupla : " + str(otros[0])
    for val in otros:
        print otros
varios(1, 2)
varios(1, 2, 3)
varios(1, 2, 3, 4)
########### Explicación: los valores de los parametros añadidos entros son automaticamente transformados
########### en una tupla

## EN CASO DE DECLARAR EL PARAMETRO CON DOS * EN LUGAR DE TRASNFORMARSE EN UNA TUPLA
## SE TRANSFORMA EN UN DICCIONARIO CUYAS CLAVES SON LOS NOMBRES DE LOS PARAMETROS
## Y LOS VALORES, LOS VALORES DE LOS PARAMETROS
def varios_diccionario(param1, param2, **otros):
    for i in otros.items():
        print i
        
varios(1, 2, tercero = 3)






# print help(mi_funcion_con_doc_string)
